package by.amakarevich.dataaccess;

import java.util.List;

import javax.persistence.metamodel.SingularAttribute;

import by.amakarevich.datamodel.Product;
import by.amakarevich.datamodel.enums.Category;

public interface ProductDao extends AbstractDao<Long, Product> {
	
	List<Product> getAllProductsByCompany(String company, Category category);
	
	List<Product> getAllProductsByCategory(Category category);
	
	List<Product> getSortedAllProduct(SingularAttribute<Product, ?> attr, boolean ascending,
			int startRecord, int pageSize, Category category);
	
	List<Product> getSortedAllProduct(SingularAttribute<Product, ?> attr, boolean ascending,
			int startRecord, int pageSize, Category category, String company);
	
	Long getCount(Category category);
	
	Long getCount(Category category, String company);
	
}
